package ControleAcademico.Model.Pojo;

import java.util.ArrayList;

public class Disciplina {
	
	private int id;
	private static int nextInt = 1;
	private String nome;
	private String ementa;
	private int cargaHoraria;
	private int numeroTurmasOferecidas;
	private ArrayList<Turma> turma;
	private ArrayList<HistoricoDisciplina> historicosDisciplina;
	private ArrayList<Professor> professores;
	
	public Disciplina(String nome, String ementa, int cargaHoraria) {
		
		this.id = nextInt;
		nextInt++;
		this.nome = nome;
		this.ementa = ementa;
		this.cargaHoraria = cargaHoraria;
		this.numeroTurmasOferecidas = 0;
		this.turma = new ArrayList<Turma>();
		this.historicosDisciplina = new ArrayList<HistoricoDisciplina>();
		this.professores = new ArrayList<Professor>();	
	}
	
	public Disciplina (String nome, String ementa, int cargaHoraria, int id) {
		this.id = id;
		this.nome = nome;
		this.ementa = ementa;
		this.cargaHoraria = cargaHoraria;
		this.numeroTurmasOferecidas = 0;
		this.turma = new ArrayList<Turma>();
		this.historicosDisciplina = new ArrayList<HistoricoDisciplina>();
		this.professores = new ArrayList<Professor>();		
	}

	public int getId(){
		return id;
	}
	
	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}
	
	public String getEmenta() {
		return ementa;
	}
	
	public void setEmenta(String ementa) {
		this.ementa = ementa;
	}
	
	public int getCargaHoraria() {
		return cargaHoraria;
	}
	
	public void setCargaHoraria(int cargaHoraria) {
		this.cargaHoraria = cargaHoraria;
	}

	public ArrayList<Turma> getTurma() {
		return turma;
	}
	
	public ArrayList<HistoricoDisciplina> getHistoricosDisciplina() {
		return historicosDisciplina;
	}

	public ArrayList<Professor> getProfessores() {
		return professores;
	}
	
	public void adicionarTurma(Turma turma){
		this.turma.add(turma);
		//numeroTurmasOferecidas = numeroTurmasOferecidas + 1;
	}
	
/*	public void setNumeroTurmasOferecidas(){
		this.numeroTurmasOferecidas = numeroTurmasOferecidas + 1;
	}*/
	
	public void adicionarProfessor (Professor professor){
		professores.add(professor);
	}
	
	public void adicionarHistoricoDisciplina(HistoricoDisciplina historicoDisciplina){
		this.historicosDisciplina.add(historicoDisciplina);
	}	
	public ArrayList<Aluno> getListaAlunos(){
		ArrayList<Aluno> listaDeAlunos = new ArrayList<Aluno>();
		Aluno aluno = null;
		
		for (HistoricoDisciplina historicoDisciplina : historicosDisciplina) {
			aluno = historicoDisciplina.getAluno();
			listaDeAlunos.add(aluno);
		}
		
		return listaDeAlunos;
	}
	
	public void adicionarNumeroTurmas () {
		
		this.numeroTurmasOferecidas++;
		
	}
	
	public int getNumeroTurmasOferecidas () {
		return this.numeroTurmasOferecidas;
	}
	
}
